Function.prototype.call2 = function(context, ...args) {
  var context = context || window
  context.fn = this
  let res = context.fn(...args)

  delete context.fn
  return res
}

function info(name, motto) {
  console.log(name);
  console.log(motto);

  console.log(this.value);
}

var a = {
  value: 'yellres'
}

info.call2(a)

